--全局管理菜单
return function(qq, msg, bl)
    --所有需要运行的app
    local app = {
        {
            --!list
            check = function()
                return msg:find('list ') == 1
            end,
            run = function()
                keyWord = msg:gsub('list ', '')
                keyWord = kickSpace(keyWord)
                sendMessage('全局词库内容：\n' .. apiXmlListGet('', 'common', keyWord))
                return true
            end,
            explain = function()
                return 'list 关键词'
            end
        },
        {
            --!add
            check = function()
                --检查函数，拦截则返回true
                return msg:find('add ') == 1
            end,
            run = function()
                --匹配后进行运行的函数
                msg = msg:gsub('add ', '')
                local keyWord, answer = msg:match('(.+):(.+)')
                keyWord = kickSpace(keyWord)
                answer = kickSpace(answer)
                if not keyWord or not answer or keyWord:len() == 0 or answer:len() == 0 then
                    sendMessage('格式 add 123:123')
                    return true
                end
                apiXmlInsert('', 'common', keyWord, answer)
                sendMessage('添加完成！\n' .. '词条：' .. keyWord .. '\n' .. '回答：' .. answer)
                return true
            end,
            explain = function()
                --功能解释，返回为字符串，若无需显示解释，返回nil即可
                return 'add 关键词:回答'
            end
        },
        {
            --!delall
            check = function()
                return msg:find('delall ') == 1
            end,
            run = function()
                keyWord = msg:gsub('delall ', '')
                keyWord = kickSpace(keyWord)
                apiXmlDelete('', 'common', keyWord)
                sendMessage('删除完成！\n' .. '词条：' .. keyWord)
                return true
            end,
            explain = function()
                return 'delall 关键词'
            end
        },
        {
            --!del
            check = function()
                return msg:find('del ') == 1
            end,
            run = function()
                msg = msg:gsub('del ', '')
                local keyWord, answer = msg:match('(.+):(.+)')
                keyWord = kickSpace(keyWord)
                answer = kickSpace(answer)
                if not keyWord or not answer or keyWord:len() == 0 or answer:len() == 0 then
                    sendMessage('格式 del 123:123')
                    return true
                end
                apiXmlRemove('', 'common', keyWord, answer)
                sendMessage('删除完成！\n' .. '词条：' .. keyWord .. '\n' .. '回答：' .. answer)
                return true
            end,
            explain = function()
                return 'del 关键词:回答'
            end
        },
        -- 百分百回复自定义 start
        {
            --!list
            check = function()
                return msg:find('0list ') == 1
            end,
            run = function()
                keyWord = msg:gsub('list ', '')
                keyWord = kickSpace(keyWord)
                sendMessage('全局词库内容：\n' .. apiXmlListGet('', 'ocommon', keyWord))
                return true
            end,
            explain = function()
                return '0list 关键词'
            end
        },
        {
            --!add
            check = function()
                --检查函数，拦截则返回true
                return msg:find('0add ') == 1
            end,
            run = function()
                --匹配后进行运行的函数
                msg = msg:gsub('0add ', '')
                local keyWord, answer = msg:match('(.+):(.+)')
                keyWord = kickSpace(keyWord)
                answer = kickSpace(answer)
                if not keyWord or not answer or keyWord:len() == 0 or answer:len() == 0 then
                    sendMessage('格式 0add 123:123')
                    return true
                end
                apiXmlSet('', 'ocommon', keyWord, answer)
                sendMessage('添加完成！\n' .. '词条：' .. keyWord .. '\n' .. '回答：' .. answer)
                return true
            end,
            explain = function()
                --功能解释，返回为字符串，若无需显示解释，返回nil即可
                return '0add 关键词:回答'
            end
        },
        {
            --!delall
            check = function()
                return msg:find('0delall ') == 1
            end,
            run = function()
                keyWord = msg:gsub('0delall ', '')
                keyWord = kickSpace(keyWord)
                apiXmlDelete('', 'ocommon', keyWord)
                sendMessage('删除完成！\n' .. '词条：' .. keyWord)
                return true
            end,
            explain = function()
                return '0delall 关键词'
            end
        },
        {
            --!del
            check = function()
                return msg:find('0del ') == 1
            end,
            run = function()
                msg = msg:gsub('0del ', '')
                local keyWord, answer = msg:match('(.+):(.+)')
                keyWord = kickSpace(keyWord)
                answer = kickSpace(answer)
                if not keyWord or not answer or keyWord:len() == 0 or answer:len() == 0 then
                    sendMessage('格式 0del 123:123')
                    return true
                end
                apiXmlRemove('', 'ocommon', keyWord, answer)
                sendMessage('删除完成！\n' .. '词条：' .. keyWord .. '\n' .. '回答：' .. answer)
                return true
            end,
            explain = function()
                return '0del 关键词:回答'
            end
        },
        -- 百分百回复自定义 end
        {
            --退群
            check = function()
                return msg:find('退群') == 1
            end,
            run = function()
                local key = msg:match('(%d+)')
                if key then
                    cqSetGroupExit(tonumber(key))
                    return true
                end
                sendMessage('请输入要退出的群号')
                return true
            end,
            explain = function()
                return '退群'
            end
        },
        {
            --!addgroupadmin
            check = function()
                return msg:find('添加群管') == 1
            end,
            run = function()
                msg = msg:gsub("添加群管", '')
                local ingroup, inqq = msg:match('(.+):(.+)')
                ingroup = kickSpace(ingroup)
                inqq = kickSpace(inqq)
                if ingroup:len() == 0 and inqq:len() == 0 and tonumber(ingroup) == nil and tonumber(inqq) == nil then
                    sendMessage('格式 添加群管 群号:qq')
                    return true
                end
                local dlist = apiXmlIdListGet('', 'grouplist')
                local num = dlist[0]
                local list = dlist[1]
                for i = 0, num do
                    if ingroup == list[i] then
                        apiXmlSet(ingroup, 'adminList', inqq, 'admin')
                        sendMessage('群:' .. ingroup .. '\n添加管理员:' .. inqq)
                        cqSendGroupMessage(tonumber(ingroup), '添加本群机器管理员:' .. inqq)
                        return true
                    end
                end
                sendMessage('Q群不存在')
                return true
            end,
            explain = function()
                return '添加群管 群号:qq'
            end
        },
        {
            --群发
            check = function()
                return msg:find('群发') == 1
            end,
            run = function()
                keyWord = msg:gsub('群发', '')
                local t = apiXmlIdListGet('', 'grouplist')
                local nums = t[0]
                local lists = t[1]
                for i = 0, nums do
                    if cqSendGroupMessage(tonumber(lists[i]), keyWord) == -34 then
                        --在群内被禁言了，直接退群
                        --cqSetGroupExit(tonumber(lists[i]))
                        apiXmlSet("","Shutup",tostring(fromgroup),"f")
                    end
                end
                sendMessage('群发完成,数量:' .. tostring(nums + 1))
                return true
            end,
            explain = function()
                return '群发'
            end
        },
        {
            --!delgroupadmin
            check = function()
                return msg:find('删除群管') == 1
            end,
            run = function()
                msg = msg:gsub('删除群管', '')
                local ingroup, inqq = msg:match('(.+):(.+)')
                ingroup = kickSpace(ingroup)
                inqq = kickSpace(inqq)
                if ingroup:len() == 0 and inqq:len() == 0 and tonumber(ingroup) == nil and tonumber(inqq) == nil then
                    sendMessage('格式 删除群管 群号:qq')
                    return true
                end
                local dlist = apiXmlIdListGet('', 'grouplist')
                local num = dlist[0]
                local list = dlist[1]
                for i = 0, num do
                    if ingroup == list[i] then
                        apiXmlDelete(ingroup, 'adminList', inqq)
                        sendMessage('群:' .. ingroup .. '\n删除管理员:' .. inqq)
                        cqSendGroupMessage(tonumber(ingroup), '删除本群机器管理员:' .. inqq)
                        return true
                    end
                end
                sendMessage('Q群不存在')
                return true
            end,
            explain = function()
                return '删除群管 群号:qq'
            end
        },
        {
            --获取群列表
            check = function()
                return msg:find('群列表') == 1
            end,
            run = function()
                local dlist = apiXmlIdListGet('', 'grouplist')
                local num = dlist[0]
                local list = dlist[1]
                local n = ''
                for i = 0, num do
                    if i == num then
                        n = n .. list[i]
                        break
                    end
                    n = n .. list[i] .. '\n'
                end
                sendMessage(n)
                return true
            end,
            explain = function()
                return '群列表'
            end
        },
        {
            --!addadmin
            check = function()
                return msg:find('添加超管 ') == 1
            end,
            run = function()
                local keyWord = msg:match('(%d+)')
                apiXmlSet('', 'adminList', keyWord, 'admin')
                sendMessage('已添加超管' .. keyWord)
                return true
            end,
            explain = function()
                return '添加超管 qq'
            end
        },
        {
            --机器人唤醒词设置
            check = function()
                return msg:find('唤醒词') == 1
            end,
            run = function()
                name = msg:gsub('唤醒词', ''):trim()
                apiXmlSet('', 'settings', 'name', name)
                sendMessage('在群里叫我' .. name .. ',我就会回复你啦！')
                return true
            end,
            explain = function()
                return '唤醒词'
            end
        },
        {
            --!deladmin
            check = function()
                return msg:find('删除超管 ') == 1
            end,
            run = function()
                local keyWord = msg:match('(%d+)')
                apiXmlDelete('', 'adminList', keyWord)
                sendMessage('已宰掉狗管理' .. keyWord)
                return true
            end,
            explain = function()
                return '删除超管 qq'
            end
        },
        {
            --初始化群成员
            check = function()
                return msg:find('初始化群 ') == 1
            end,
            run = function()
                local key = msg:match('(%d+)')
                local t = cqGetMemberList(tonumber(key))
                local nums = t[0]
                local lists = t[1]
                for s = 0, nums do
                    local ls = lists[s]
                    apiXmlSet(key, 'memberlist', tostring(ls['QQ']), '')
                end
                sendMessage('群成员初始化完成,人数:' .. tostring(nums + 1))
                return true
            end,
            explain = function()
                return '初始化群'
            end
        },
        {
            --初始化群列表
            check = function()
                return msg:find('初始化群列表') == 1
            end,
            run = function()
                --初始化群列表
                local grouplist = cqGetGroupList()
                local n = grouplist[0]
                local list = grouplist[1]
                local rootPath = apiGetAsciiHex(apiGetPath())
                rootPath = rootPath:gsub('[%s%p]', ''):upper()
                rootPath =
                    rootPath:gsub(
                    '%x%x',
                    function(c)
                        return string.char(tonumber(c, 16))
                    end
                )
                os.remove(rootPath .. 'data/app/' .. apiGetAppName() .. '/xml/grouplist.xml')
                for i = 0, n do
                    apiXmlSet('', 'grouplist', tostring(list[i]['Id']), '')
                end
                sendMessage('初始化群列表完成,数量:' .. tostring(n + 1))
                return true
            end,
            explain = function()
                return '初始化群列表'
            end
        },
        {
            --运行lua脚本
            check = function()
                return msg:find('#') == 1
            end,
            run = function()
                if qq == admin then
                    local result, info =
                        pcall(
                        function()
                            print = function(s)
                                sendMessage(tostring(s))
                            end
                            load(cqCqCode_UnTrope(msg:sub(2)))()
                        end
                    )
                    if result then
                        sendMessage('成功运行')
                    else
                        sendMessage('运行失败\r\n' .. tostring(info))
                    end
                else
                    sendMessage(apiSandBox(cqCqCode_UnTrope(msg:sub(2))))
                end
                return true
            end
        },
        {
            --机器人回复概率设置
            check = function()
                return msg:find('回复概率') == 1
            end,
            run = function()
                probability = msg:gsub('回复概率', ''):trim()
                apiXmlSet('', 'settings', 'probability', probability)
                sendMessage('当前群内回复概率调整为' .. probability .. '0%')
                return true
            end,
            explain = function()
                return '回复概率'
            end
        },
        {
            --语音性格设置
            check = function()
                return msg:find('语音性格设置') == 1
            end,
            run = function()
                mettle = msg:gsub('语音性格设置', ''):trim()
                return true
            end,
            explain = function()
                return '语音性格设置'
            end
        },
        {
            --关键字监听设置
            check = function()
                return msg:find('添加监听') == 1
            end,
            run = function()
                local keys = msg:gsub('添加监听', '')
                local key
                if keys:find(' ') ~= nil then
                    key = keys:split(' ')
                    for i = 1, #key do
                        apiXmlSet('', 'Monitor', key[i]:trim(), '1')
                    end
                else
                    apiXmlSet('', 'Monitor', keys:trim(), '1')
                end
                sendMessage('添加成功')
                return true
            end,
            explain = function()
                --功能解释，返回为字符串，若无需显示解释，返回nil即可
                return '添加监听'
            end
        },
        {
            --关键字监听删除
            check = function()
                return msg:find('删除监听') == 1
            end,
            run = function()
                local keys = msg:gsub('删除监听', '')
                local key = keys
                if keys:find(' ') ~= nil then
                    key = keys:split(' ')
                    for i = 1, #key do
                        apiXmlRemove('', 'Monitor', key[i]:trim(), '1')
                    end
                else
                    apiXmlRemove('', 'Monitor', keys:trim(), '1')
                end
                sendMessage('删除成功')
                return true
            end,
            explain = function()
                --功能解释，返回为字符串，若无需显示解释，返回nil即可
                return '删除监听'
            end
        },
        {
            --监听列表
            check = function()
                return msg:find('监听列表') == 1
            end,
            run = function()
                local dlist = apiXmlIdListGet('', 'Monitor')
                local num = dlist[0]
                local list = dlist[1]
                local n = ''
                for i = 0, num do
                    if i == num then
                        n = n .. list[i]
                        break
                    end
                    n = n .. list[i] .. '\n'
                end
                sendMessage('监听关键字：\n' .. n)
                return true
            end,
            explain = function()
                return '监听列表'
            end
        },
        {
            --监听转发QQ
            check = function()
                return msg:find('监听QQ') == 1
            end,
            run = function()
                local key = msg:match('(%d+)')
                apiXmlSet('', 'Monitorlog', 'qq', key)
                return true
            end,
            explain = function()
                return '监听QQ'
            end
        },
        {
            --开启监听
            check = function()
                return msg:find('开启监听') == 1
            end,
            run = function()
                apiXmlSet('', 'Monitorlog', 'Monitor', 't')
                sendMessage('开启成功')
                return true
            end,
            explain = function()
                return '开启监听'
            end
        },
        {
            --关闭监听
            check = function()
                return msg:find('关闭监听') == 1
            end,
            run = function()
                apiXmlSet('', 'Monitorlog', 'Monitor', 'f')
                sendMessage('关闭成功')
                return true
            end,
            explain = function()
                return '关闭监听'
            end
        },
        {
            --广告关键字设置
            check = function()
                return msg:find('添加广告') == 1
            end,
            run = function()
                local keys = msg:gsub('添加广告', '')
                keys = kickSpace(keys)
                local key 
                if keys:find(' ') ~= nil then
                    key = keys:split(' ')
                    for i = 1, #key do
                        apiXmlSet('', 'advert', key[i]:trim(), '1')
                    end
                else 
                    apiXmlSet('', 'advert', keys:trim(), '1')
                end
                sendMessage('添加成功')
                return true
            end,
            explain = function()
                --功能解释，返回为字符串，若无需显示解释，返回nil即可
                return '添加广告'
            end
        },
        {
            --广告关键字删除
            check = function()
                return msg:find('删除广告') == 1
            end,
            run = function()
                local keys = msg:gsub('删除广告', '')
                keys = kickSpace(keys)
                local key = keys
                if keys:find(' ') ~= nil then
                    key = keys:split(' ')
                    for i = 1, #key do
                        apiXmlRemove('', 'advert', key[i]:trim(), '1')
                    end
                else
                    apiXmlRemove('', 'advert', keys:trim(), '1')
                end
                sendMessage('删除成功')
                return true
            end,
            explain = function()
                --功能解释，返回为字符串，若无需显示解释，返回nil即可
                return '删除广告'
            end
        },
        {
            --广告列表
            check = function()
                return msg:find('广告列表') == 1
            end,
            run = function()
                local dlist = apiXmlIdListGet('', 'advert')
                local num = dlist[0]
                local list = dlist[1]
                local n = ''
                for i = 0, num do
                    if i == num then
                        n = n .. list[i]
                        break
                    end
                    n = n .. list[i] .. '\n'
                end
                sendMessage('广告关键字：\n' .. n)
                return true
            end,
            explain = function()
                return '广告列表'
            end
        },
        {
            --添加定时任务
            check = function()
                return msg:find('添加定时') == 1
            end,
            run = function()
                local keys = msg:gsub('添加定时', '')
                local key = keys:split('、')
                local time= key[1]:split(":")
                
                local h = time[1]:match("(%d+)")
                local m = time[2]:match("(%d+)")
                if h == nil or m == nil or key[2] == nil or tonumber(h) > 24 or tonumber(m) > 60 then
                    sendMessage("时间不对噢")
                    return true
                end
                if m:find("00")==1 then
                    m = "0"
                elseif m:find("0")==1 then
                    m = m:gsub("0","")
                end
                apiXmlSet('timer', 'timertask', h.. ':' .. m, key[2])
                apiUpdateTimerTask()
                sendMessage('添加成功')
                return true
            end,
            explain = function()
                return '添加定时'
            end
        },
        {
            --定时任务删除
            check = function()
                return msg:find('删除定时') == 1
            end,
            run = function()
                local keys = msg:gsub('删除定时', '')
                keys = kickSpace(keys)
                local key
                if keys:find('、') ~= nil then
                    key = keys:split('、')
                    for i = 1, #key do
                        apiXmlDelete('timer', 'timertask', key[i]:trim())
                    end
                    sendMessage('删除成功')
                    return true
                else
                    apiXmlDelete('timer', 'timertask', keys)
                    sendMessage('删除成功')
                    return true
                end
            end,
            explain = function()
                return '删除定时'
            end
        },
        {
            --定时列表
            check = function()
                return msg:find('定时列表') == 1
            end,
            run = function()
                local dlist = apiXmlIdListGet('timer', 'timertask')
                local num = dlist[0]
                local list = dlist[1]
                local n = ''
                for i = 0, num do
                    if i == num then
                        n = n .. list[i]
                        break
                    end
                    n = n .. list[i] .. '\n'
                end
                sendMessage('定时列表：\n' .. n)
                return true
            end,
            explain = function()
                return '定时列表'
            end
        },
        {
            --添加自定义脚本
            check = function()
                return msg:find('添加脚本') == 1
            end,
            run = function()
                local keys = msg:gsub('添加脚本', '')
                keys = kickSpace(keys)
                local key = keys:split('、')
                apiXmlSet('script', 'script', key[1], key[2])
                apiUpdateTimerTask()
                sendMessage('添加成功')
                return true
            end,
            explain = function()
                return '添加脚本'
            end
        },
        {
            --自定义脚本删除
            check = function()
                return msg:find('删除脚本') == 1
            end,
            run = function()
                local keys = msg:gsub('删除脚本', '')
                keys = kickSpace(keys)
                local key
                if keys:find('、') ~= nil then
                    key = keys:split('、')
                    for i = 1, #key do
                        apiXmlDelete('script', 'script', key[i])
                    end
                    sendMessage('删除成功')
                    return true
                else
                    apiXmlDelete('script', 'script', keys)
                    sendMessage('删除成功')
                    return true
                end
                return true
            end,
            explain = function()
                return '删除脚本'
            end
        },
        {
            --脚本列表
            check = function()
                return msg:find('脚本列表') == 1
            end,
            run = function()
                local dlist = apiXmlIdListGet('script', 'script')
                local num = dlist[0]
                local list = dlist[1]
                local n = ''
                for i = 0, num do
                    if i == num then
                        n = n .. list[i]
                        break
                    end
                    n = n .. list[i] .. '\n'
                end
                sendMessage('脚本列表：\n' .. n)
                return true
            end,
            explain = function()
                return '脚本列表'
            end
        },
        {
            --执行脚本
            check = function()
                return msg:find('执行脚本') == 1
            end,
            run = function()
                local keys = msg:gsub('执行脚本', '')
                keys = kickSpace(keys)
                local script = apiXmlGet('script', 'script', keys)
                if script == '' then
                    return true
                end
                local result, info =
                    pcall(
                    function()
                        print = function(s)
                            sendMessage(tostring(s))
                        end
                        load(cqCqCode_UnTrope(script))()
                    end
                )
                if result then
                    sendMessage('脚本成功运行')
                else
                    sendMessage('脚本运行失败\r\n' .. tostring(info))
                end
                return true
            end,
            explain = function()
                return '执行脚本'
            end
        },
        {
            --更新版本
            check = function()
                return msg:find('版本升级') == 1
            end,
            run = function()
                sendMessage(apiUpdateScript())
                return true
            end,
            explain = function()
                return '版本升级'
            end
        },
        {
            --清理数据
            check = function()
                return msg:find('清理数据') == 1
            end,
            run = function()
                sendMessage(apiDelCache())
                return true
            end,
            explain = function()
                return '清理数据'
            end
        },
        {
            --关键字监听设置
            check = function()
                return msg:find('私聊转发') == 1
            end,
            run = function()
                local keys = msg:gsub('私聊转发', '')
                local key
                if keys:find('开启') ~= nil then
                    apiXmlSet('', 'Monitorqqlog', 'Monitor', 't')
                    sendMessage('开启成功')
                elseif keys:find('关闭') ~= nil then
                    apiXmlSet('', 'Monitorqqlog', 'Monitor', 'f')
                    sendMessage('关闭成功')
                end
                return true
            end,
            explain = function()
                return '私聊转发开启/关闭'
            end
        },
        {
            --私聊转发QQ
            check = function()
                return msg:find('私聊转发QQ') == 1
            end,
            run = function()
                local key = msg:match('(%d+)')
                apiXmlSet('', 'Monitorqqlog', 'qq', key)
                return true
            end,
            explain = function()
                return '私聊转发QQ'
            end
        },
        {
            --语音播放
            check = function()
                return msg:find('语音播放') == 1
            end,
            run = function()
                local key = msg:match('(%d+)')
                local name = apiXmlGet("record","record",tostring(key))
                sendMessage(cqCqCode_Record(name))
                return true
            end,
            explain = function()
                return '语音播放'
            end
        },
        {
            --语音数量
            check = function()
                return msg:find('语音数量') == 1
            end,
            run = function()
                local total = apiXmlGet("record","record","total")
                sendMessage("当前共记录语音"..total.."条")
                return true
            end,
            explain = function()
                return '语音数量'
            end
        },
        {
            --语音自定义
            check = function()
                return msg:find('语音自定义') == 1
            end,
            run = function()
                local keys = kickSpace(msg:gsub("语音自定义","")):split(":")
                local name = apiXmlGet("record","record",tostring(keys[1]))
                apiXmlInsert('record', 'userecord', keys[2],name)
                sendMessage("添加完成!")
                return true
            end,
            explain = function()
                return '语音自定义 编号:标签'
            end
        },
        {
            --开启关闭自动同意好友申请
            check = function()
                return msg:find('同意好友') == 1
            end,
            run = function()
                local key = msg:gsub("同意好友","")
                if key=="开启" then
                    apiXmlSet("","agree","private","t")
                    sendMessage("开启自动同意好友申请")
                elseif key == "关闭" then
                    apiXmlSet("","agree","private","f")
                    sendMessage("关闭自动同意好友申请")
                end
                return true
            end,
            explain = function()
                return '同意好友开启/关闭'
            end
        },
        {
            --开启关闭自动同意群邀请
            check = function()
                return msg:find('同意群邀请') == 1
            end,
            run = function()
                local key = msg:gsub("同意群邀请","")
                if key=="开启" then
                    apiXmlSet("","agree","group","t")
                    sendMessage("开启自动同意群邀请")
                elseif key == "关闭" then
                    apiXmlSet("","agree","group","f")
                    sendMessage("关闭自动同意群邀请")
                end
                return true
            end,
            explain = function()
                return '同意群邀请开启/关闭'
            end
        },
        {
            --私聊
            check = function()
                return msg:find('私聊') == 1
            end,
            run = function()
                key = msg:split(':')
                if #key ~= 2 then
                    return '格式 私聊919825501:你好'
                end
                local q = key[1]:match('(%d+)')
                cqSendPrivateMessage(tonumber(q), key[2])
                return true
            end,
            explain = function()
                return '私聊919825501:你好'
            end
        },
    }

    -- 执行功能 获取菜单
    if bl then
        for i = 1, #app do
            if app[i].check and app[i].check() then
                return app[i].run()
            end
        end
    else
        local m = ""
        local flag = true
        for i = 1, #app do
            local appExplain = app[i].explain and app[i].explain()
            if appExplain then
                m = m ..appExplain
                if flag then
                    m = m .. "    "
                    flag = nil
                else
                    m = m .. "\n"
                    flag = true
                end
            end
        end
        sendMessage(m)
        return true
    end
end
